home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / documents / RFC / rfc1108.txt < prev    next >
Text File  |  1994-08-01  |  42KB  |  955 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                            S. Kent
  8. Request for Comments: 1108                            BBN Communications
  9. Obsoletes: RFC 1038                                        November 1991
  10.  
  11.  
  12.                        U.S. Department of Defense
  13.                Security Options for the Internet Protocol
  14.  
  15.  
  16. Status of this Memo
  17.  
  18.    This RFC specifies an IAB standards track protocol for the Internet
  19.    community, and requests discussion and suggestions for improvements.
  20.    Please refer to the current edition of the "IAB Official Protocol
  21.    Standards" for the standardization state and status of this protocol.
  22.    Distribution of this memo is unlimited.
  23.  
  24. Abstract
  25.  
  26.    This RFC specifies the U.S. Department of Defense Basic Security
  27.    Option and the top-level description of the Extended Security Option
  28.    for use with the Internet Protocol.  This RFC obsoletes RFC 1038
  29.    "Revised IP Security Option", dated January 1988.
  30.  
  31. 1.  DoD Security Options Defined
  32.  
  33.    The following two internet protocol options are defined for use on
  34.    Department of Defense (DoD) common user data networks:
  35.  
  36.    CF  CLASS  #  TYPE  LENGTH   DESCRIPTION
  37.  
  38.    1     0    2   130   var.    DoD Basic Security:  Used to carry the
  39.                                 classification level and protection
  40.                                 authority flags.
  41.  
  42.  
  43.    1     0    5   133   var.    DoD Extended Security:  Used to carry
  44.                                 additional security information as
  45.                                 required by registered authorities.
  46.  
  47.    CF = Copy on Fragmentation
  48.  
  49. 2.  DoD Basic Security Option
  50.  
  51.    This option identifies the U.S. classification level at which the
  52.    datagram is to be protected and the authorities whose protection
  53.    rules apply to each datagram.
  54.  
  55.  
  56.  
  57.  
  58. Kent                                                            [Page 1]
  59.  
  60. RFC 1108                U.S. DOD Security Option           November 1991
  61.  
  62.  
  63.    This option is used by end systems and intermediate systems of an
  64.    internet to:
  65.  
  66.         a.  Transmit from source to destination in a network standard
  67.         representation the common security labels required by computer
  68.         security models,
  69.  
  70.         b.  Validate the datagram as appropriate for transmission from
  71.         the source and delivery to the destination,
  72.  
  73.         c.  Ensure that the route taken by the datagram is protected to
  74.         the level required by all protection authorities indicated on
  75.         the datagram.  In order to provide this facility in a general
  76.         Internet environment, interior and exterior gateway protocols
  77.         must be augmented to include security label information in
  78.         support of routing control.
  79.  
  80.    The DoD Basic Security option must be copied on fragmentation.  This
  81.    option appears at most once in a datagram.  Some security systems
  82.    require this to be the first option if more than one option is
  83.    carried in the IP header, but this is not a generic requirement
  84.    levied by this specification.
  85.  
  86.    The format of the DoD Basic Security option is as follows:
  87.  
  88.       +------------+------------+------------+-------------//----------+
  89.       |  10000010  |  XXXXXXXX  |  SSSSSSSS  |  AAAAAAA[1]    AAAAAAA0 |
  90.       |            |            |            |         [0]             |
  91.       +------------+------------+------------+-------------//----------+
  92.         TYPE = 130     LENGTH   CLASSIFICATION         PROTECTION
  93.                                      LEVEL              AUTHORITY
  94.                                                           FLAGS
  95.  
  96.                     FIGURE 1.  DoD BASIC SECURITY OPTION FORMAT
  97.  
  98. 2.1.  Type
  99.  
  100.    The value 130 identifies this as the DoD Basic Security Option.
  101.  
  102. 2.2.  Length
  103.  
  104.    The length of the option is variable.  The minimum length of the
  105.    option is 3 octets, including the Type and Length fields (the
  106.    Protection Authority field may be absent).  A length indication of
  107.    less than 3 octets should result in error processing as described in
  108.    Section 2.8.1.
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Kent                                                            [Page 2]
  115.  
  116. RFC 1108                U.S. DOD Security Option           November 1991
  117.  
  118.  
  119. 2.3.  Classification Level
  120.  
  121.         Field Length:  One Octet
  122.  
  123.    This field specifies the (U.S.) classification level at which the
  124.    datagram must be protected.  The information in the datagram must be
  125.    protected at this level.  The field is encoded as shown in Table 1
  126.    and the order of values in this table defines the ordering for
  127.    comparison purposes.  The bit string values in this table were chosen
  128.    to achieve a minimum Hamming distance of four (4) between any two
  129.    valid values.  This specific assignment of classification level names
  130.    to values has been defined for compatibility with security devices
  131.    which have already been developed and deployed.
  132.  
  133.    "Reserved" values in the table must be treated as invalid until such
  134.    time they are assigned to named classification levels in a successor
  135.    to this document.  A datagram containing a value for this field which
  136.    is either not in this table or which is listed as "reserved" is in
  137.    error and must be processed according to the "out-of-range"
  138.    procedures defined in section 2.8.1.
  139.  
  140.    A classification level value from the Basic Security Option in a
  141.    datagram may be checked for equality against any of the (assigned)
  142.    values in Table 1 by performing a simple bit string comparison.
  143.    However, because of the sparseness of the classification level
  144.    encodings, range checks involving a value from this field must not be
  145.    performed based solely using arithmetic comparisons (as such
  146.    comparisons would encompass invalid and or unassigned values within
  147.    the range).  The details of how ordered comparisons are performed for
  148.    this field within a system is a local matter, subject to the
  149.    requirements set forth in this paragraph.
  150.  
  151.                     Table 1.  Classification Level Encodings
  152.  
  153.                          Value              Name
  154.  
  155.                         00000001   -   (Reserved 4)
  156.                         00111101   -   Top Secret
  157.                         01011010   -   Secret
  158.                         10010110   -   Confidential
  159.                         01100110   -   (Reserved 3)
  160.                         11001100   -   (Reserved 2)
  161.                         10101011   -   Unclassified
  162.                         11110001   -   (Reserved 1)
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Kent                                                            [Page 3]
  171.  
  172. RFC 1108                U.S. DOD Security Option           November 1991
  173.  
  174.  
  175. 2.4.  Protection Authority Flags
  176.  
  177.         Field Length:  Variable
  178.  
  179.    This field identifies the National Access Programs or Special Access
  180.    Programs which specify protection rules for transmission and
  181.    processing of the information contained in the datagram.  Note that
  182.    protection authority flags do NOT represent accreditation
  183.    authorities, though the semantics are superficially similar.  In
  184.    order to maintain architectural consistency and interoperability
  185.    throughout DoD common user data networks, users of these networks
  186.    should submit requirements for additional Protection Authority Flags
  187.    to DISA DISDB, Washington, D.C.  20305-2000, for review and approval.
  188.    Such review and approval should be sought prior to design,
  189.    development or deployment of any system which would make use of
  190.    additional facilities based on assignment of new protection authority
  191.    flags.  As additional flags are approved and assigned, they will be
  192.    published, along with the values defined above, in the Assigned
  193.    Numbers RFC edited by the Internet Assigned Numbers Authority (IANA).
  194.  
  195.         a.  Field Length: This field is variable in length.  The low-
  196.         order bit (Bit 7) of each octet is encoded as "0" if it is the
  197.         final octet in the field or as "1" if there are additional
  198.         octets.  Initially, only one octet is required for this field
  199.         (because there are fewer than seven authorities defined), thus
  200.         the final bit of the first octet is encoded as "0".  However,
  201.         minimally compliant implementations must be capable of
  202.         processing a protection authority field consisting of at least 2
  203.         octets (representing up to 14 protection authorities).
  204.         Implementations existing prior to the issuance of this RFC, and
  205.         which process fewer protection authority than specified here,
  206.         will be considered minimally compliant so long as such
  207.         implementations process the flags in accordance with the RFC.
  208.         This field must be a minimally encoded representation, i.e., no
  209.         trailing all-zero octets should be emitted.  If the length of
  210.         this field as indicated by this extensible encoding is not
  211.         consistent with the length field for the option, the datagram is
  212.         in error and the procedure described in Section 2.8.1 must be
  213.         followed.  (Figure 2 illustrates the relative significance of
  214.         the bits within an octet).
  215.  
  216.                         0   1   2   3   4   5   6   7
  217.                       +---+---+---+---+---+---+---+---+
  218.           High-order  |   |   |   |   |   |   |   |   |  Low-order
  219.                       +---+---+---+---+---+---+---+---+
  220.  
  221.                          Figure 2.  Significance of Bits
  222.  
  223.  
  224.  
  225.  
  226. Kent                                                            [Page 4]
  227.  
  228. RFC 1108                U.S. DOD Security Option           November 1991
  229.  
  230.  
  231.         b.  Source Flags: The first seven bits (Bits 0 through 6) in
  232.         each octet are flags.  Each flag is associated with an
  233.         authority.  Protection Authority flags currently assigned are
  234.         indicated in Table 2.  The bit corresponding to an authority is
  235.         "1" if the datagram is to be protected in accordance with the
  236.         rules of that authority.  More than one flag may be present in a
  237.         single instance of this option if the data contained in the
  238.         datagram should be protected according to rules established by
  239.         multiple authorities.  Table 3 identifies a point of contact for
  240.         each of the authorities listed in Table 2.  No "unassigned" bits
  241.         in this or other octets in the Protection Authority Field shall
  242.         be considered valid Protection Authority flags until such time
  243.         as such bits are assigned and the assignments are published in
  244.         the Assigned Numbers RFC.  Thus a datagram containing flags for
  245.         unassigned bits in this field for this option is in error and
  246.         must be processed according to the "out-of-range" procedures
  247.         defined in section 2.8.1.
  248.  
  249.         Two protection authority flag fields can be compared for
  250.         equality (=) via simple bit string matching.  No relative
  251.         ordering between two protection authority flag fields is
  252.         defined.  Because these flags represent protection authorities,
  253.         security models such as Bell-LaPadula do not apply to
  254.         interpretation of this field.  However, the symbol "=<" refers
  255.         to set inclusion when comparing a protection authority flag
  256.         field to a set of such fields.  Means for effecting these tests
  257.         within a system are a local matter, subject to the requirements
  258.         set forth in this paragraph.
  259.  
  260.                       Table 2 - Protection Authority Bit Assignments
  261.  
  262.                                 BIT
  263.                                NUMBER     AUTHORITY
  264.  
  265.                                  0        GENSER
  266.  
  267.                                  1        SIOP-ESI
  268.  
  269.                                  2        SCI
  270.  
  271.                                  3        NSA
  272.  
  273.                                  4        DOE
  274.  
  275.                               5, 6        Unassigned
  276.  
  277.                                  7        Field Termination Indicator
  278.  
  279.  
  280.  
  281.  
  282. Kent                                                            [Page 5]
  283.  
  284. RFC 1108                U.S. DOD Security Option           November 1991
  285.  
  286.  
  287.                 Table 3 - Protection Authority Points of Contact
  288.  
  289.                 AUTHORITY             POINT OF CONTACT
  290.  
  291.                 GENSER                Designated Approving Authority
  292.                                       per DOD 5200.28
  293.  
  294.                 SIOP-ESI              Department of Defense
  295.                                       Organization of the
  296.                                       Joint Chiefs of Staff
  297.                                       Attn: J6
  298.                                       Washington, DC  20318-6000
  299.  
  300.                 SCI                   Director of Central Intelligence
  301.                                       Attn: Chairman, Information
  302.                                       Handling Committee, Intelligence
  303.                                       Community Staff
  304.                                       Washington, D.C. 20505
  305.  
  306.                 NSA                   National Security Agency
  307.                                       9800 Savage Road
  308.                                       Attn: T03
  309.                                       Ft. Meade, MD 20755-6000
  310.  
  311.                 DOE                   Department of Energy
  312.                                       Attn:  DP343.2
  313.                                       Washington, DC  20545
  314.  
  315. 2.5.  System Security Configuration Parameters
  316.  
  317.    Use of the Basic Security Option (BSO) by an end or intermediate
  318.    system requires that the system configuration include the parameters
  319.    described below.  These parameters are critical to secure processing
  320.    of the BSO, and thus must be protected from unauthorized
  321.    modification.  Note that compliant implementations must allow a
  322.    minimum of 14 distinct Protection Authority flags (consistent with
  323.    the Protection Authority field size defined in Section 2.4) to be set
  324.    independently in any parameter involving Protection Authority flag
  325.    fields.
  326.  
  327.         a. SYSTEM-LEVEL-MAX: This parameter specifies the highest
  328.         Classification Level (see Table 1) which may be present in the
  329.         classification level field of the Basic Security Option in any
  330.         datagram transmitted or received by the system.
  331.  
  332.         b. SYSTEM-LEVEL-MIN: This parameter specifies the lowest
  333.         Classification Level (see Table 1) which may be present in the
  334.         classification level field of the Basic Security Option in any
  335.  
  336.  
  337.  
  338. Kent                                                            [Page 6]
  339.  
  340. RFC 1108                U.S. DOD Security Option           November 1991
  341.  
  342.  
  343.         datagram transmitted by the system.
  344.  
  345.         c. SYSTEM-AUTHORITY-IN:  This parameter is a set, each member of
  346.         which is a Protection Authority flag field.  The set enumerates
  347.         all of the Protection Authority flag fields which may be present
  348.         in the Protection Authority field of the Basic Security Option
  349.         in any datagram received by this system.  A compliant
  350.         implementation must be capable of representing at least 256
  351.         distinct Protection Authority flag fields (each field must be
  352.         capable of representing 14 distinct Protection Authority flags)
  353.         in this set.  Each element of the enumerated set may be a
  354.         combination of multiple protection authority flags.
  355.  
  356.         Set elements representing multiple Protection Authorities are
  357.         formed by ORing together the flags that represent each
  358.         authority.  Thus, for example, a set  element representing
  359.         datagrams to be protected according to NSA and SCI rules might
  360.         be represented as "00110000" while an element representing
  361.         protection mandated by NSA, DOE and SIOP-ESI might be
  362.         represented as "01011000".  (These examples illustrate 8-bit set
  363.         elements apropos the minimal encodings for currently defined
  364.         Protection Authority flags.  If additional flags are defined
  365.         beyond the first byte of the Protection Authority Field, longer
  366.         encodings for set elements may be required.)
  367.  
  368.         It is essential that implementations of the Internet Protocol
  369.         Basic Security Option provide a convenient and compact way for
  370.         system security managers to express which combinations of flags
  371.         are allowed.  The details of such an interface are outside the
  372.         scope of this RFC, however, enumeration of bit patterns is NOT a
  373.         recommended interface.  As an alternative, one might consider a
  374.         notation of the form COMB(GENSER,NSA,SCI)+COMB(SIOP-ESI,NSA,SCI)
  375.         in which "COMB" means ANY combination of the flags referenced as
  376.         parameters of the COMB function are allowed and "+" means "or".
  377.  
  378.         d. SYSTEM-AUTHORITY-OUT:  This parameter is a set, each member
  379.         of which is a Protection Authority flag field.  The set
  380.         enumerates all of the Protection Authority flag fields which may
  381.         be present in the Protection Authority field of the Basic
  382.         Security Option in any datagram transmitted by this system.  A
  383.         compliant implementation must be capable of representing at
  384.         least 256 distinct Protection Authority flag fields in this set.
  385.         Explicit enumeration of all authorized Protection Authority
  386.         field flags permits great flexibility, and in particular does
  387.         not impose set inclusion restrictions on this parameter.
  388.  
  389.    The following configuration parameters are defined for each network
  390.    port present on the system.  The term "port" is used here to refer
  391.  
  392.  
  393.  
  394. Kent                                                            [Page 7]
  395.  
  396. RFC 1108                U.S. DOD Security Option           November 1991
  397.  
  398.  
  399.    either to a physical device interface (which may represent multiple
  400.    IP addresses) or to a single IP address (which may be served via
  401.    multiple physical interfaces).  In general the former interpretation
  402.    will apply and is consistent with the Trusted Network Interpretation
  403.    of the Trusted Computer Systems Evaluation Criteria (TNI) concept of
  404.    a "communications channel" or "I/O device."  However, the latter
  405.    interpretation also may be valid depending on local system security
  406.    capabilities.  Note that some combinations of port parameter values
  407.    are appropriate only if the port is "single level," i.e., all data
  408.    transmitted or received via the port is accurately characterized by
  409.    exactly one Classification Level and Protection Authority Flag field.
  410.  
  411.         e. PORT-LEVEL-MAX: This parameter specifies the highest
  412.         Classification Level (see Table 1) which may be present in the
  413.         classification level field of the Basic Security Option in any
  414.         datagram transmitted or received by the system via this network
  415.         port.
  416.  
  417.         f. PORT-LEVEL-MIN: This parameter specifies the lowest
  418.         Classification Level (see Table 1) which may be present in the
  419.         classification level field of the Basic Security Option in any
  420.         datagram transmitted by the system via this network port.
  421.  
  422.         g. PORT-AUTHORITY-IN:  This parameter is a set each member of
  423.         which is a Protection Authority flag field.  The set enumerates
  424.         all of the Protection Authority flag fields which may be present
  425.         in the Protection Authority field of the Basic Security Option
  426.         in any datagram received via this port.  A compliant
  427.         implementation must be capable of representing at least 256
  428.         distinct Protection Authority flag fields in this set.
  429.  
  430.         h. PORT-AUTHORITY-OUT:  This parameter is a set each member of
  431.         which is a Protection Authority flag field.  The set enumerates
  432.         all of the Protection Authority flag fields which may be present
  433.         in the Protection Authority field of the Basic Security Option
  434.         in any datagram transmitted via this port.  A compliant
  435.         implementation must be capable of representing at least 256
  436.         distinct Protection Authority flag fields in this set.
  437.  
  438.         i. PORT-AUTHORITY-ERROR:  This parameter is a single Protection
  439.         Authority flag field assigned to transmitted ICMP error messages
  440.         (see Section 2.8).  The PORT-AUTHORITY-ERROR value is selected
  441.         from the set of values which constitute PORT-AUTHORITY-OUT.
  442.         Means for selecting the PORT-AUTHORITY-ERROR value within a
  443.         system are a local matter subject to local security policies.
  444.  
  445.         j. PORT-IMPLICIT-LABEL:  This parameter specifies a single
  446.         Classification Level and a Protection Authority flag field
  447.  
  448.  
  449.  
  450. Kent                                                            [Page 8]
  451.  
  452. RFC 1108                U.S. DOD Security Option           November 1991
  453.  
  454.  
  455.         (which may be null) to be associated with all unlabelled
  456.         datagrams received via the port.  This parameter is meaningful
  457.         only if PORT-BSO-REQUIRED-RECEIVE = FALSE, otherwise receipt of
  458.         an unlabelled datagram results in an error response.
  459.  
  460.         k. PORT-BSO-REQUIRED-RECEIVE:  This parameter is a boolean which
  461.         indicates whether all datagrams received via this network port
  462.         must contain a Basic Security Option.
  463.  
  464.         l. PORT-BSO-REQUIRED-TRANSMIT:  This parameter is a boolean
  465.         which indicates whether all datagrams transmitted via this
  466.         network port must contain a Basic Security Option.   If this
  467.         parameter is set to FALSE, then PORT-BSO-REQUIRED-RECEIVE should
  468.         also be set to FALSE (to avoid communication failures resulting
  469.         from asymmetric labelling constraints).
  470.  
  471.    In every intermediate or end system, the following relationship must
  472.    hold for these parameters for all network interfaces.  The symbol
  473.    ">=" is interpreted relative to the linear ordering defined for
  474.    security levels specified in Section 2.3 for the "LEVEL" parameters,
  475.    and as set inclusion for the "AUTHORITY" parameters.
  476.  
  477.            SYSTEM-LEVEL-MAX >= PORT-LEVEL-MAX >=
  478.                    PORT-LEVEL-MIN >= SYSTEM-LEVEL-MIN
  479.  
  480.            SYSTEM-AUTHORITY-IN >= PORT-AUTHORITY-IN
  481.                             and
  482.            SYSTEM-AUTHORITY-OUT >= PORT-AUTHORITY-OUT
  483.  
  484. 2.6.  Configuration Considerations
  485.  
  486.    Systems which do not maintain separation for different security
  487.    classification levels of data should have only trivial ranges for the
  488.    LEVEL parameters, i.e., SYSTEM-LEVEL-MAX = PORT-LEVEL-MAX = PORT-
  489.    LEVEL-MIN = SYSTEM-LEVEL-MIN.
  490.  
  491.    Systems which do maintain separation for different security
  492.    classification levels of data may have non-trivial ranges for the
  493.    LEVEL parameters, e.g., SYSTEM-LEVEL-MAX >= PORT-LEVEL-MAX >= PORT-
  494.    LEVEL-MIN >= SYSTEM-LEVEL-MIN.
  495.  
  496. 2.7.  Processing the Basic Security Option
  497.  
  498.    For systems implementing the Basic Security Option, the parameters
  499.    PORT-BSO-REQUIRED-TRANSMIT and PORT-BSO-REQUIRED-RECEIVE are used to
  500.    specify the local security policy with regard to requiring the
  501.    presence of this option on transmitted and received datagrams,
  502.    respectively, on a per-port basis.  Each datagram transmitted or
  503.  
  504.  
  505.  
  506. Kent                                                            [Page 9]
  507.  
  508. RFC 1108                U.S. DOD Security Option           November 1991
  509.  
  510.  
  511.    received by the system must be processed in accordance with the per-
  512.    port and system-wide security parameters configured for the system.
  513.  
  514.    Systems which process only Unclassified data may or may not be
  515.    configured to generate the BSO on transmitted datagrams.  Such
  516.    systems also may or may not require a BSO to be present on received
  517.    datagrams.  However, all systems must be capable of accepting
  518.    datagrams containing this option, irrespective of whether the option
  519.    is processed or not.
  520.  
  521.    In general, systems which process classified data must generate this
  522.    option for transmitted datagrams.  The only exception to this rule
  523.    arises in (dedicated or system high [DoD 5200.28]) networks where
  524.    traffic may be implicitly labelled rather than requiring each
  525.    attached system to generate explicit labels.  If the local security
  526.    policy permits receipt of datagrams without the option, each such
  527.    datagram is presumed to be implicitly labelled based on the port via
  528.    which the datagram is received.  A per-port parameter (PORT-
  529.    IMPLICIT-LABEL) specifies the label to be associated with such
  530.    datagrams upon receipt.  Note that a datagram transmitted in response
  531.    to receipt of an implicitly labelled datagram, may, based on local
  532.    policy, require an explicit Basic Security Option.
  533.  
  534. 2.7.1.  Handling Unclassified Datagrams
  535.  
  536.    If an unmarked datagram is received via a network port for which
  537.    PORT-BSO-REQUIRED = FALSE and PORT-IMPLICIT-LABEL = UNCLASSIFIED (NO
  538.    FLAGS), the datagram shall be processed as though no Protection
  539.    Authority Flags were set.  Thus there are two distinct, valid
  540.    representations for Unclassified datagrams to which no Protection
  541.    Authority rules apply (an unmarked datagram as described here and a
  542.    datagram containing an explicit BSO with Classification Level set to
  543.    Unclassified and with no Protection Authority flags set).  Note that
  544.    a datagram also may contain a Basic Security Option in which the
  545.    Classification Level is Unclassified and one or more Protection
  546.    Authority Field Flags are set.  Such datagrams are explicitly
  547.    distinct from the equivalence class noted above (datagrams marked
  548.    Unclassified with no Protection Authority field flags set and
  549.    datagrams not containing a Basic Security Option).
  550.  
  551. 2.7.2.  Input Processing
  552.  
  553.    Upon receipt of any datagram a system compliant with this RFC must
  554.    perform the following actions.  First, if PORT-BSO-REQUIRED-RECEIVE =
  555.    TRUE for this port, then any received datagram must contain a Basic
  556.    Security Option and a missing BSO results in an ICMP error response
  557.    as specified in Section 2.8.1.  A received datagram which contains a
  558.    Basic Security Option must be processed as described below.  This
  559.  
  560.  
  561.  
  562. Kent                                                           [Page 10]
  563.  
  564. RFC 1108                U.S. DOD Security Option           November 1991
  565.  
  566.  
  567.    algorithm assumes that the IP header checksum has already been
  568.    verified and that, in the course of processing IP options, this
  569.    option has been encountered.  The value of the Classification Level
  570.    field from the option will be designated "DG-LEVEL" and the value of
  571.    the Protection Authority Flags field will be designated "DG-
  572.    AUTHORITY."
  573.  
  574.    Step 1. Check that DG-LEVEL is a valid security classification level,
  575.            i.e., it must be one of the (non-reserved) values from Table
  576.            1.  If this test fails execute the out-of-range procedure in
  577.            Section 2.8.1.
  578.  
  579.    Step 2. Check that PORT-LEVEL-MAX >= DG-LEVEL.  If this test fails,
  580.            execute out-of-range procedure specified in Section 2.8.2.
  581.  
  582.    Step 3. Check that DG-AUTHORITY =< PORT-AUTHORITY-IN.  If this test
  583.            fails, execute out-of-range procedure specified in Section
  584.            2.8.2.
  585.  
  586. 2.7.3.  Output Processing
  587.  
  588.    Any system which implements the Basic Security Option must adhere to
  589.    a fundamental rule with regard to transmission of datagrams, i.e., no
  590.    datagram shall be transmitted with a Basic Security Option the value
  591.    of which is outside of the range for which the system is configured.
  592.    Thus for every datagram transmitted by a system the following must
  593.    hold: PORT-LEVEL-MAX >= DG-LEVEL >= PORT-LEVEL-MIN and DG-AUTHORITY
  594.    =< PORT-AUTHORITY-OUT.  It is a local matter as to what procedures
  595.    are followed by a system which detects at attempt to transmit a
  596.    datagram for which these relationships do not hold.
  597.  
  598.    If a port is configured to allow both labelled and unlabelled
  599.    datagrams (PORT-BSO-REQUIRED-TRANSMIT = FALSE) to be transmitted, the
  600.    question arises as to whether a label should be affixed.  In
  601.    recognition of the lack of widespread implementation or use of this
  602.    option, especially in unclassified networks, this RFC recommends that
  603.    the default be transmission of unlabelled datagrams.  If the
  604.    destination requires all datagrams to be labelled on input, then it
  605.    will respond with an ICMP error message (see Section 2.8.1) and the
  606.    originator can respond by labelling successive packets transmitted to
  607.    this destination.
  608.  
  609.    To support this mode of operation, a system which allows transmission
  610.    of both labelled and unlabelled datagrams must maintain state
  611.    information (a cache) so that the system can associate the use of
  612.    labels with specific destinations, e.g., in response to receipt of an
  613.    ICMP error message as specified in Section 2.8.1.  This requirement
  614.    for maintaining a per-destination cache is very much analogous to
  615.  
  616.  
  617.  
  618. Kent                                                           [Page 11]
  619.  
  620. RFC 1108                U.S. DOD Security Option           November 1991
  621.  
  622.  
  623.    that imposed for processing the IP source route option or for
  624.    maintaining first hop routing information (RFC 1122).  This RFC does
  625.    not specify which protocol module must maintain the per-destination
  626.    cache (e.g., IP vs.  TCP or UDP) but security engineering constraints
  627.    may dictate an IP implementation in trusted systems.  This RFC also
  628.    does not specify a cache maintenance algorithm, though use of a timer
  629.    and activity flag may be appropriate.
  630.  
  631. 2.8.  Error Procedures
  632.  
  633.    Datagrams received with errors in the Basic Security Option or which
  634.    are out of range for the network port via which they are received,
  635.    should not be delivered to user processes.  Local policy will specify
  636.    whether logging and/or notification of a system security officer is
  637.    required in response to receipt of such datagrams.  The following are
  638.    the least restrictive actions permitted by this protocol.  Individual
  639.    end or intermediate systems, system administrators, or protection
  640.    authorities may impose more stringent restrictions on responses and
  641.    in some instances may not permit any response at all to a datagram
  642.    which is outside the security range of a host or system.
  643.  
  644.    In all cases, if the error is triggered by receipt of an ICMP, the
  645.    ICMP is discarded and no response is permitted (consistent with
  646.    general ICMP processing rules).
  647.  
  648. 2.8.1.Parameter Problem Response
  649.  
  650.    If a datagram is received with no Basic Security Option and the
  651.    system security configuration parameters require the option on the
  652.    network port via which the datagram was received, an ICMP Parameter
  653.    Problem Missing Option (Type = 12, Code = 1) message is transmitted
  654.    in response.  The Pointer field of the ICMP should be set to the
  655.    value "130" to indicate the type of option missing.  A Basic Security
  656.    Option is included in the response datagram with Clearance Level set
  657.    to PORT-LEVEL-MIN and Protection Authority Flags set to PORT-
  658.    AUTHORITY-ERROR.
  659.  
  660.    If a datagram is received in which the Basic Security Option is
  661.    malformed (e.g., an invalid Classification Level Protection Authority
  662.    Flag field), an ICMP Parameter Problem (Type = 12, Code = 0) message
  663.    is transmitted in response.  The pointer field is set to the
  664.    malformed Basic Security Option.  The Basic Security Option is
  665.    included in the response datagram with Clearance Level set to PORT-
  666.    LEVEL-MIN and Protection Authority Flags set to PORT-AUTHORITY-ERROR.
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674. Kent                                                           [Page 12]
  675.  
  676. RFC 1108                U.S. DOD Security Option           November 1991
  677.  
  678.  
  679. 2.8.2.  Out-Of-Range Response
  680.  
  681.    If a datagram is received which is out of range for the network port
  682.    on which it was received, an ICMP Destination Unreachable
  683.    Communication Administratively Prohibited (Type = 3, Code = 9 for net
  684.    or Code = 10 for host) message is transmitted in response.  A Basic
  685.    Security Option is included in the response datagram with Clearance
  686.    Level set to PORT-LEVEL-MIN and Protection Authority Flags set to
  687.    PORT-AUTHORITY-ERROR.
  688.  
  689. 2.9.  Trusted Intermediary Procedure
  690.  
  691.    Certain devices in an internet may act as intermediaries to validate
  692.    that communications between two hosts are authorized.  This decision
  693.    is based on the knowledge of the accredited security levels of the
  694.    hosts and the values in the DoD Basic Security Option.  These devices
  695.    may receive IP datagrams which are in range for the intermediate
  696.    device, but are not within the accredited range either for the source
  697.    or for the destination.  In the former case, the datagram should be
  698.    treated as described above for an out-of-range option.  In the latter
  699.    case, an ICMP Destination Unreachable Communication Administratively
  700.    Prohibited (Type = 3, Code = 9 for net or Code = 10 for host)
  701.    response should be transmitted. The security range of the network
  702.    interface on which the reply will be sent determines whether a reply
  703.    is allowed and at what level it will be sent.
  704.  
  705. 3.  DoD Extended Security Option
  706.  
  707.    This option permits additional security labelling information, beyond
  708.    that present in the Basic Security Option, to be supplied in an IP
  709.    datagram to meet the needs of registered authorities.  Note that
  710.    information which is not labelling data or which is meaningful only
  711.    to the end systems (not intermediate systems) is not appropriate for
  712.    transmission in the IP layer and thus should not be transported using
  713.    this option.  This option must be copied on fragmentation.  Unlike
  714.    the Basic Option, this option may appear multiple times within a
  715.    datagram, subject to overall IP header size constraints.
  716.  
  717.    This option may be present only in conjunction with the Basic
  718.    Security Option, thus all systems which support Extended Security
  719.    Options must also support the Basic Security Option.  However, not
  720.    all systems which support the Basic Security Option need to support
  721.    Extended Security Options and support for these options may be
  722.    selective, i.e., a system need not support all Extended Security
  723.    Options.
  724.  
  725.    The top-level format for this option is as follows:
  726.  
  727.  
  728.  
  729.  
  730. Kent                                                           [Page 13]
  731.  
  732. RFC 1108                U.S. DOD Security Option           November 1991
  733.  
  734.  
  735.              +------------+------------+------------+-------//-------+
  736.              |  10000101  |  000LLLLL  |  AAAAAAAA  |  add sec info  |
  737.              +------------+------------+------------+-------//-------+
  738.               TYPE = 133      LENGTH     ADDITIONAL      ADDITIONAL
  739.                                         SECURITY INFO     SECURITY
  740.                                          FORMAT CODE        INFO
  741.  
  742.                    FIGURE 3.  DoD EXTENDED SECURITY OPTION FORMAT
  743.  
  744. 3.1.  Type
  745.  
  746.    The value 133 identifies this as the DoD Extended Security Option.
  747.  
  748. 3.2.  Length.
  749.  
  750.    The length of the option, which includes the "Type" and "Length"
  751.    fields, is variable.  The minimum length of the option is 3 octets.
  752.  
  753. 3.3.  Additional Security Info Format Code
  754.  
  755.         Length:  1 Octet
  756.  
  757.    The value of the Additional Security Info Format Code identifies the
  758.    syntax and semantics for a specific "Additional Security Information"
  759.    field.  For each Additional Security Info Format Code, an RFC will be
  760.    published to specify the syntax and to provide an algorithmic
  761.    description of the processing required to determine whether a
  762.    datagram carrying a label specified by this Format Code should be
  763.    accepted or rejected.  This specification must be sufficiently
  764.    detailed to permit vendors to produce interoperable implementations,
  765.    e.g., it should be comparable to the specification of the Basic
  766.    Security Option provided in this RFC.  However, the specification
  767.    need not include a mapping from the syntax of the option to human
  768.    labels if such mapping would cause distribution of the specification
  769.    to be restricted.
  770.  
  771.    In order to maintain the architectural consistency of DoD common user
  772.    data networks, and to maximize interoperability, each activity should
  773.    submit its plans for the definition and use of an Additional Security
  774.    Info Format Code to DISA DISDB, Washington, D.C.  20305-2000 for
  775.    review and approval.  DISA DISDB will forward plans to the Internet
  776.    Activities Board for architectural review and, if required, a cleared
  777.    committee formed by the IAB will be constituted for the review
  778.    process.  Once approved, the Internet Assigned Number authority will
  779.    assign an Additional Security Info Format Code to the requesting
  780.    activity, concurrent with publication of the corresponding RFC.
  781.  
  782.    Note: The bit assignments for the Protection Authority flags of the
  783.  
  784.  
  785.  
  786. Kent                                                           [Page 14]
  787.  
  788. RFC 1108                U.S. DOD Security Option           November 1991
  789.  
  790.  
  791.    Basic Security Option have no relationship to the "Additional
  792.    Security Info Format Code" of this option.
  793.  
  794. 3.4.  Additional Security Information.
  795.  
  796.         Length:  Variable
  797.  
  798.    The Additional Security Info field contains the additional security
  799.    labelling information specified by the "Additional Security Info
  800.    Format Code" of the Extended Security Option.  The syntax and
  801.    processing requirements for this field are specified by the
  802.    associated RFC as noted above.  The minimum length of this field is
  803.    zero.
  804.  
  805. 3.5.  System Security Configuration Parameters
  806.  
  807.    Use of the Extended Security Option requires that the intermediate or
  808.    end system configuration accurately reflect the security parameters
  809.    associated with communication via each network port (see Section 2.5
  810.    as a guide).  Internal representation of the security parameters
  811.    implementation dependent.  The set of parameters required to support
  812.    processing of the Extended Security Option is a function of the set
  813.    of Additional Security Info Format Codes supported by the system.
  814.    The RFC which specifies syntax and processing rules for a registered
  815.    Additional Security Info Format Code will specify the additional
  816.    system security parameters required for processing an Extended
  817.    Security Option relative to that Code.
  818.  
  819. 3.6.  Processing Rules
  820.  
  821.    Any datagram containing an Extended Security Option must also contain
  822.    a Basic Security Option and receipt of a datagram containing the
  823.    former absent the latter constitutes an error.  If the length
  824.    specified by the Length field is inconsistent with the length
  825.    specified by the variable length encoding for the Additional Security
  826.    Info field, the datagram is in error.  If the datagram is received in
  827.    which the Additional Security Info Format Code contains a non-
  828.    registered value, the datagram is in error.  Finally, if the
  829.    Additional Security Info field contains data inconsistent with the
  830.    defining RFC for the Additional Security Info Format Code, the
  831.    datagram is in error.  In any of these cases, an ICMP Parameter
  832.    Problem response should be sent as per Section 2.8.1.  Any additional
  833.    error processing rules will be specified in the defining RFC for this
  834.    Additional Security Info Format Code.
  835.  
  836.    If the additional security information contained in the Extended
  837.    Security Option indicates that the datagram is within range according
  838.    to the security policy of the system, then the datagram should be
  839.  
  840.  
  841.  
  842. Kent                                                           [Page 15]
  843.  
  844. RFC 1108                U.S. DOD Security Option           November 1991
  845.  
  846.  
  847.    accepted for further processing.  Otherwise, the datagram should be
  848.    rejected and the procedure specified in Section 2.8.2 should be
  849.    followed (with the Extended Security Option values set apropos the
  850.    Additional Security Info Format Code port security parameters).
  851.  
  852.    As with the Basic Security Option, it will not be possible in a
  853.    general internet environment for intermediate systems to provide
  854.    routing control for datagrams based on the labels contained in the
  855.    Extended Security Option until such time as interior and exterior
  856.    gateway routing protocols are enhanced to process such labels.
  857.  
  858. References
  859.  
  860.    [DoD 5200.28]  Department of Defense Directive 5200.28, "Security
  861.                   Requirements for Automated Information Systems," 21
  862.                   March 1988.
  863.  
  864. Security Considerations
  865.  
  866.    The focus of this RFC is the definition of formats and processing
  867.    conventions to support security labels for data contained in IP
  868.    datagrams, thus a variety of security issues must be considered
  869.    carefully when making use of these options.  It is not possible to
  870.    address all of the security considerations which affect correct
  871.    implementation and use of these options, however the following
  872.    paragraph highglights some of these issues.
  873.  
  874.    Correct implementation and operation of the software and hardware
  875.    which processes these options is essential to their effective use.
  876.    Means for achieving confidence in such correct implementation and
  877.    operation are outside of the scope of this RFC.  The options
  878.    themselves incorporate no facilities to ensure the integrity of the
  879.    security labels in transit (other than the IP checksum mechanism),
  880.    thus appropriate technology must be employed whenever datagrams
  881.    containing these options transit "hostile" communication
  882.    environments.  Careful, secure management of the configuration
  883.    variables associated with each system making use of these options is
  884.    essential if the options are to provide the intended security
  885.    functionality.
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898. Kent                                                           [Page 16]
  899.  
  900. RFC 1108                U.S. DOD Security Option           November 1991
  901.  
  902.  
  903. Author's Address
  904.  
  905.    Stephen Kent
  906.    BBN Communications
  907.    150 CambridgePark Drive
  908.    Cambridge, MA  02140
  909.  
  910.    Phone: (617) 873-3988
  911.  
  912.    Email: kent@bbn.com
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954. Kent                                                           [Page 17]
  955.